HashMap循环遍历方式

您所在的位置:网站首页 java hashmap循环 HashMap循环遍历方式

HashMap循环遍历方式

2024-07-03 10:27| 来源: 网络整理| 查看: 265

主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论。

 

1. Map的四种遍历方式 下面只是简单介绍各种遍历示例(以HashMap为例),各自优劣会在本文后面进行分析给出结论。

(1) for each map.entrySet()

    Java   1 2 3 4 5 Map map = new HashMap(); for (Entry entry : map.entrySet()) { entry.getKey(); entry.getValue(); }

 

(2) 显示调用map.entrySet()的集合迭代器

    Java   1 2 3 4 5 6 Iterator iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); entry.getKey(); entry.getValue(); }

 

(3) for each map.keySet(),再调用get获取

    Java   1 2 3 4 Map map = new HashMap(); for (String key : map.keySet()) { map.get(key); }

 

(4) for each map.entrySet(),用临时变量保存map.entrySet()

    Java   1 2 3 4 5 Set entrySet = map.entrySet(); for (Entry entry : entrySet) { entry.getKey(); entry.getValue(); }

在测试前大家可以根据对HashMap的了解,想想上面四种遍历方式哪个性能更优。

 

2、HashMap四种遍历方式的性能测试及对比 以下是性能测试代码,会输出不同数量级大小的HashMap各种遍历方式所花费的时间。

HashMap循环遍历方式性能对比测试代码     Java     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 package cn.trinea.java.test;   import java.text.DecimalFormat; import java.util.Calendar; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set;   /** * JavaLoopTest * * @author www.trinea.cn 2013-10-28 */ public class JavaLoopTest {       public static void main(String[] args) {         System.out.print("compare loop performance of HashMap");         loopMapCompare(getHashMaps(10000, 100000, 1000000, 2000000));     }       public static Map[] getHashMaps(int... sizeArray) {         Map[] mapArray = new HashMap[sizeArray.length];         for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3